.sortable-list {
  .list-actions {
    margin-bottom: 16px;
  }

  .drag-hint {
    margin-bottom: 16px;
    background: #f0f8ff;
    border: 1px solid #d6e4ff;
    
    .ant-card-body {
      padding: 12px 16px;
    }
  }

  .sortable-container {
    .list-item-wrapper {
      position: relative;
      margin-bottom: 8px;

      .drop-indicator {
        position: absolute;
        top: -4px;
        left: 0;
        right: 0;
        z-index: 10;
        text-align: center;

        .drop-line {
          height: 2px;
          background: #52c41a;
          border-radius: 1px;
          margin-bottom: 4px;
          animation: dropLinePulse 1s infinite;
        }

        .drop-text {
          background: #52c41a;
          color: white;
          padding: 2px 8px;
          border-radius: 4px;
          font-size: 12px;
          display: inline-block;
        }
      }

      .sortable-item {
        cursor: move;
        transition: all 0.3s ease;
        border: 2px solid transparent;
        user-select: none;

        &:hover {
          border-color: #1890ff;
          box-shadow: 0 4px 12px rgba(24, 144, 255, 0.15);
          transform: translateY(-2px);
        }

        &.dragging {
          opacity: 0.5;
          transform: rotate(5deg) scale(1.05);
          box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
          z-index: 1000;
        }

        .ant-card-body {
          padding: 16px;
        }

        .item-content {
          display: flex;
          align-items: center;
          gap: 16px;

          .drag-handle {
            color: #bfbfbf;
            font-size: 16px;
            cursor: grab;
            transition: color 0.3s ease;

            &:hover {
              color: #1890ff;
            }

            &:active {
              cursor: grabbing;
            }
          }

          .rank-number {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            font-size: 14px;
            flex-shrink: 0;
          }

          .user-info {
            display: flex;
            align-items: center;
            gap: 12px;
            flex: 1;
            min-width: 0;

            .user-details {
              flex: 1;
              min-width: 0;

              .user-name {
                display: flex;
                align-items: center;
                gap: 6px;
                margin-bottom: 4px;

                .level-icon {
                  font-size: 14px;
                }
              }

              .user-role {
                font-size: 12px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
              }
            }
          }

          .item-stats {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-shrink: 0;

            .level-tag {
              font-size: 11px;
              font-weight: bold;
              border-radius: 4px;
            }

            .score {
              text-align: center;
              min-width: 40px;
            }
          }
        }
      }
    }
  }
}

// 动画效果
@keyframes dropLinePulse {
  0%, 100% {
    opacity: 1;
    transform: scaleY(1);
  }
  50% {
    opacity: 0.7;
    transform: scaleY(0.8);
  }
}

@keyframes dragStart {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.05) rotate(2deg);
  }
}

// 响应式设计
@media (max-width: 768px) {
  .sortable-list {
    .sortable-container {
      .sortable-item {
        .item-content {
          gap: 12px;

          .rank-number {
            width: 28px;
            height: 28px;
            font-size: 12px;
          }

          .user-info {
            gap: 8px;

            .ant-avatar {
              width: 36px !important;
              height: 36px !important;
            }

            .user-details {
              .user-name {
                font-size: 14px;
              }

              .user-role {
                font-size: 11px;
              }
            }
          }

          .item-stats {
            gap: 8px;

            .level-tag {
              font-size: 10px;
              padding: 0 4px;
            }

            .score {
              min-width: 35px;

              .ant-typography {
                font-size: 16px !important;
              }
            }
          }
        }
      }
    }
  }
}
